<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>博客列表</title>
    <link rel="stylesheet" href="css/list.css">
    <link rel="stylesheet" href="css/blog_list.css">
    <style>
        
        .nav{
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            height: 50px;
        }
        .container{
            padding-top: 80px;
            height: auto;
        }
        .container-right{
            width: auto;
        }
        .blog-pagnation-wrapper{
            height: 40px;
            margin: 16px 0;
            text-align: center;
        }
        .blog-pagnation-item{
            display: inline-block;
            padding: 8px;
            border: 1px solid #d0d0d5;
            color: #333;
        }
        .blog-pagnation-item:hover{
            background: #4e4eeb;
            color: #fff;
        }
        .blog-pagnation-item.actvie{
            background: #4e4eeb;
            color: #fff;
        }

    </style>

    <!-- 在样式后面引入 js 文件中的 jquery -->
    <script src="js/jquery.min.js"></script>
    <!-- 用于获取到页码 -->
    <script src="js/urltools.js"></script>
    <script src="js/logout.js"></script>

</head>

<body>
    <!-- 导航栏 -->
    <div class="nav">
        <img src="img/logo2.jpg" alt="">
        <span class="title">我的博客系统</span>
        <!-- 用来占据中间位置 -->
        <span class="spacer"></span>
        <!-- <a href="blog_list.html">主页</a>  不需要显示主页了，因为已经在主页了 -->
        <a href="login.html">登陆</a>
        <a href="blog_edit.html">写博客</a>
        <!-- <a href="#">注销</a> -->
    </div>
    <!-- 版心 -->
    <div class="container">
        <!-- 右侧内容详情 -->
        <div class="container-right" style="width: 100%;">
            <!-- 每一篇博客包含标题, 摘要, 时间 -->
            <div id="artlist">
                <div class="blog" >
                    <div class="title">我的第一篇博客</div>
                    <div class="date">2021-06-02</div>
                    <div class="desc">正文</div>
                    <a href="blog_content.html?id=1" class="detail">查看全文 &gt;&gt;</a>
                </div>

                <div class="blog">
                    <div class="title">我的第一篇博客</div>
                    <div class="date">2021-06-02</div>
                    <div class="desc">正文</div>
                    <a href="blog_content.html?id=1" class="detail">查看全文 &gt;&gt;</a>
                </div>
            </div>
           
            <hr>
            <div id="pageDiv" class="blog-pagnation-wrapper">
                <button class="blog-pagnation-item" onclick="doFirst()">首页</button> 
                <button class="blog-pagnation-item" onclick="doPre()">上一页</button>  
                <button class="blog-pagnation-item" onclick="doNext()">下一页</button>
                <button class="blog-pagnation-item" onclick="doLast()">末页</button>
            </div>
        </div>
    </div>

    <script>

        var pageIndex = 1; // 页码
        var pageSize = 2;  // 每个页面的文章数量
        var pageCount = 1; // 总页数

        // 初始化操作
        function ParamInit() {
            // 先拿到 url 中的 pageIndex 和 pageSize  注意方法带上 “”
            // var paramPageIndex = getParamByKey(pageIndex);
            // var paramPageSize = getParamByKey(pageSize);

            var paramPageIndex = getParamByKey("pageIndex");
            var paramPageSize = getParamByKey("pageSize");

            if(paramPageIndex != null) {
                pageIndex = paramPageIndex;
            }
            if(paramPageIndex != null) {
                pageSize = paramPageSize;
            }
            doAjax();

        }
        ParamInit();

        // 点击首页
        function doFirst() {
            if(pageIndex <= 1) {
                alert("抱歉，已经在首页了，不能跳转了");
                return false;
            }

            pageIndex = 1;
            // 接下来通过 Ajax 向后端发送请求，
            // 因为 下一页 上一页 末页 都要这个请求，还都是一样的，所以提取出来
            // 但是应该放在初始化上面，否则 url 中的 pageIndex 和 pageSize 的不会变化,
            // 所以下面的我们直接跳转带上 pageIndex 和 pageSize
            // doAjax();
            location.href = "blog_list.html?pageIndex=" + pageIndex + "&pageSize=" + pageSize;
        }

        // 点击上一页
        function doPre() {
            if(pageIndex <= 1) {
                alert("抱歉，已经在首页了，不能跳转了");
                return false;
            }
            // -- 放前面和后面都可以
            --pageIndex; 
            location.href = "blog_list.html?pageIndex=" + pageIndex + "&pageSize=" + pageSize;
        }

        // 点击下一页
        function doNext() {
            if(pageIndex >= pageCount) {
                alert("已经在末页了");
                return false;
            }
            pageIndex++;
            location.href = "blog_list.html?pageIndex=" + pageIndex + "&pageSize=" + pageSize;

        }

        // 点击末页
        function doLast() {
            if(pageIndex >= pageCount) {
                alert("已经在末页了");
                return false;
            }
            location.href = "blog_list.html?pageIndex=" + pageCount + "&pageSize=" + pageSize;
        }

        // 请求后端，并展示结果给前端
        function doAjax() {

            // 1.得到当前页面的文章列表数据
            jQuery.ajax({
                url:"/art/getlistbypage",
                data:{
                    "pageIndex": pageIndex,
                    "pageSize":pageSize
                },
                success:function(res) {
                    if(res.code == 200 && res.data.length > 0) {
                        // 从后端拿到数据，进行列表拼接和展示 和 myblog_list.html中的拼接是一样的
                        jQuery("#pageDiv").show();
                        var artListHtml = "";
                        for(var i = 0; i < res.data.length; i++) {
                            var art = res.data[i];
                            artListHtml += '<div class="blog">';
                            artListHtml += '<div class="title">'+ art.title +'</div>';
                            artListHtml += '<div class="date">'+ art.createtime +'</div>';
                            artListHtml += '<div class="desc">'+ art.content +'</div>';
                            artListHtml += '<a href="blog_content.html?id='+ art.id +'" class="detail">查看全文 &gt;&gt;</a>';
                            artListHtml += '</div>';
                        }
                        jQuery("#artlist").html(artListHtml);

                    } else {
                        jQuery("#pageDiv").hide();
                        jQuery("#artlist").html("<h2 style='margin-left:10px,margin-top:10px' >暂无文章</h2>");

                    }
                }
            }); 


            // 2. 得到当前的页数 放不放在 doAjax() 方法里面都可以，单独 写一个也行 ， 只有点击下一页和 末页 的时候会调用。
            // 此处进行两次ajax请求，不是后端返回两个参数 文章列表 和 页数，还得弄成类似于 hashmap 的样子
            // 两次分别返回简单
            jQuery.ajax({
                url:"/art/getcount",
                data:{},
                success:function(res) {
                    if(res.code == 200 && res.data > 0) {
                        // 计算总页数
                        pageCount = Math.ceil(res.data/pageSize); // 函数作用：向上取整  5/2 = 3
                        // 之后 点击 末页，就会调用 doLast() 方法
                    }
                }
            });
        }
    </script>
</body>
</html>